'''
给定一个整数数组 nums 和一个目标值 target，请你在该数组中找出和为目标值的那 两个 整数，并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是，数组中同一个元素不能使用两遍。

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/two-sum
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
上面还有很多优质的解法，比起上面的解法，我这个算low的
'''
def twoSum(nums, target):
    res = []
    for i in range(len(nums)):
        right = target - nums[i]
        res.append(i)
        for index, val in enumerate(nums[i + 1:], i + 1):
            if val == right:
                res.append(index)
                return res
        else:
            p = res.pop()
print(twoSum([3,3,11,3],6))

#
def twoSum(nums,target):
		d = {}
		n = len(nums)
		for x in range(n):
			if target - nums[x] in d:
				return d[target-nums[x]],x
			else:
				d[nums[x]] = x

def twoSum(nums,target):
		n = len(nums)
		for x in range(n):
			a = target - nums[x]
			if a in nums: # 判断a有没有在nums数组里
				y = nums.index(a) # 有的话，那么用index获取到该数字的下标
				if x == y:
					continue # 同样的数字不能重复用，所以这里如果是一样的数字，那么就不满足条件，跳过
				else: # 否则就返回结果
					return x,y
					break
			else:
				continue # 上面的条件都不满足就跳过，进行下一次循环


def twoSum(nums, target):
    for i in range(len(nums)):
        second_num = target - nums[i]
        if second_num in nums[i + 1:]:
            return [nums.index(nums[i]), nums.index(second_num, i + 1)]